Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

198
Vistas
función asíncrona para activar tanto con el botón de búsqueda como presionando la tecla "enter" en el teclado en el campo de entrada

Tengo una función asíncrona que funciona solo cuando hago clic en el botón de búsqueda, pero quiero que la función se inicie también si presiono la tecla "enter" en el teclado.

¿Es esto posible con Vanilla Javascript y la función asíncrona?

Hice varios intentos, pero parece que no funciona.

html

 <input type="text" id="input-search" placeholder=""><span><button id="search-button">Search</button></span>

js

 let userName = document.querySelector("#username"); let button = document.querySelector("#search-button"); button.onclick = async function getData() { let username = document.getElementById("input-search").value; axios .get(`https://api.templatewebsite`) .then(async (response) => { let data = await response.data; if (response.status !== 200) { throw new Error(response.status); } else { console.log(data); } }); };

Traté de mantener los fragmentos de código cortos para evitar información innecesaria.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Sí, puedes hacerlo así:

 let userName = document.querySelector('#username'); let button = document.querySelector('#search-button'); let input = document.querySelector('#input-search') async function getData() { // do some async actions alert('getData called') } button.onclick = getData; input.addEventListener('keyup', function(e){ var code = (e.keyCode ? e.keyCode : e.which); if(code == 13) { getData(); } })
 <input type="text" id="input-search" placeholder=""><span><button id="search-button">Search</button></span>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Tiene dos opciones, la primera es envolverlo en el componente <form> y manejar este código al enviarlo. El segundo es agregar un detector de eventos en la entrada y verificar si ingresa:

 userName.addEventListener("keyup", function(event) { if (event.keyCode === 13) { // Magic happens here } }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Traté de poner el código sugerido por @Shamloo y traté de adaptarlo a mi código. Lanza un error cuando intenta obtener el valor del campo de entrada, después de la llamada a la API de axios.

Probablemente puse el código en el lugar equivocado, porque arroja un error incluso si el campo de entrada contiene el valor correcto.

me gusta esto:

 let input = document.querySelector('#input-search') async function getData(){ document.querySelector('#input-search').value //API CALL with axios axios.get(`https://api.webtemplate{input}`) .then( async response => { let data = await response.data //if the request can't be processed (data is not found) if (response.status !== 200) { throw new Error(response.status); } else { //request works, data is found console.log(data)

fuera de la función, en la parte inferior del código

 button.onclick = getData; input.addEventListener('keyup', function(e){ var code = (e.keyCode ? e.keyCode : e.which); if(code == 13) { getData(); } })
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda